package com.ittao.taoaicodemother.service;

import reactor.core.publisher.Flux;

/**
 * 任务管理服务接口
 * 用于管理AI生成任务，支持中断操作
 */
public interface TaskManagerService {

    /**
     * 启动生成任务
     * @param taskId 任务ID
     * @param appId 应用ID
     * @param flux 生成流
     * @return 包装后的可中断流
     */
    Flux<String> startGenerateTask(String taskId, Long appId, Flux<String> flux);

    /**
     * 中断生成任务
     * @param taskId 任务ID
     * @param appId 应用ID
     * @return 是否成功中断
     */
    boolean interruptTask(String taskId, Long appId);

    /**
     * 检查任务是否被中断
     * @param taskId 任务ID
     * @return 是否被中断
     */
    boolean isTaskInterrupted(String taskId);

    /**
     * 清理已完成的任务
     * @param taskId 任务ID
     */
    void cleanupTask(String taskId);

    /**
     * 获取任务状态
     * @param taskId 任务ID
     * @return 任务状态
     */
    String getTaskStatus(String taskId);
}
